Digital content, such as video or audio, can be streamed from a source to a client. Such streaming is prevalent, for example, in video-on-demand (“VOD”) services. A VOD server can store multiple versions of the same video (e.g., the server can store low and high resolution versions of the video). During playback, the client can begin playback of the low resolution version, and then, after determining whether various system requirements (e.g., bandwidth or hardware capabilities) are met, the client can switch playback from the low resolution to the high resolution version of the video.
However, when content is encoded using different sample or frame rates, the timepoints in each version are not readily identifiable, resulting in gaps or skips in the playback. Accordingly, what is needed are systems and methods for switching between multiple streams of encoded media.